#include <stdio.h>
#include <stdlib.h>
/**
 * 宏展开仅仅是字符串，不会计算；
 * 宏在编译之前就会被处理掉，不参与编译，也不占内存
 * 函数是可以重复使用，被编译的，分配内存
 */
//带参数宏定义
#define MAX(a,b) ((a>b) ? a : b)
#define X 3;

//声明
int SQ(int y);
//函数
int front(int x,int y){
    return x+y;
}

int main() {
    //区分系统, 能够根据不同情况编译不同代码、产生不同目标文件的机制，称为条件编译
    #if _WIN32
        //system("color 0c");
        printf("这是window系统\n");
    #elif __linux__
        printf("\033[22;31m这是linux系统\n\033[22;30m");
    #else
        printf("这是什么系统\n");
    #endif

    #ifdef _DEBUG
        printf("正在使用 Debug 模式编译程序...\n");
    #else
        printf("正在使用 Release 模式编译程序...\n");
    #endif
    //system("pause");
    int x,y=2,max;
    x = X;
    max = MAX(x,y);
    printf("max=%d\n", max);
    printf("SQ=%d\n", SQ(3));
    printf("front=%d\n", front(7,8));
    return 0;
}

//函数
int SQ(int y){
    return ((y)*(y));
}